package com.xucy.springboot.designmodel.behavioral.templatemethod;

/**
 * @Author xucy
 * @Date 2019-07-30 10:16
 * @Description
 **/

public abstract class Acourse {

    /**
     * 打包课程
     *
     * @Author xucy
     * @Date 10:17 2019-07-30
     * @param
     * @return
     */
    final void makeCourse(){
        this.makePPT();
        this.makeVideo();
        if(this.isMakeArticle()){
            this.makeArticle();
        }

        this.makePri();
    }

    final void makePPT(){
        System.out.println("上传ppt");
    }

    final void makeVideo(){
        System.out.println("上传video");
    }

    final void makeArticle(){
        System.out.println("上传手记");
    }

    boolean isMakeArticle(){
        return false;
    }

    /**
     * 各子类自己实现自己的方法
     *
     * @Author xucy
     * @Date 10:18 2019-07-30
     * @param
     * @return
     */
    abstract void makePri();
}
